<ES6>扩展对象属性
简介
- ES6通过多种方式加强对象的使用,通过简单的语法扩展,提供更多操作对象以及对象交互方法。
 
初始值的简写
1  | let a = 1;  | 
对象方法的简写
- 注意简写方法可以使用super关键字
 
1  | let obj = {  | 
可计算属性名
1  | let firstName = 'first name'  | 
新增对象方法
Object.is()
- 以下几项比较特殊,其他比较与===相同
 
1  | console.log(Object.is(+0,-0))//false  | 
Object.assign()
- 混合(Mixin)模式,接受一个接收对象和任意数量的源对象
 
- 对于对象属性是浅复制
 - 不能将访问器属性复制到接收对象,只是调用get
 
1  | let obj = {}  | 
自有属性的枚举顺序
- 所有数字按照升序排序
 - 所有字母按照被加入对象的顺序排序
 - symbol类型按照被加入顺序排序
 - for-in循环不适用,因为浏览器厂商不一样
 
增强对象原型
- 对原型进行了改进
 
Object.setPrototypeOf()
- 改变对象的原型,改变对象内部专属[[Prototype]],接收两个参数,被改变原型的对象,以及替代原型的对象
 
简化原型访问的super
- super相当于指针,指向Object.getPrototypeOf(this)的值
 - 必须在简写方法时使用super
 
1  | let person = {  | 
正式的方法定义
1  | let obj = {  | 
- 正式的方法定义内部存在[[HomeObject]]属性
 
1  | let obj = {  |